End-users increasingly access Web content with devices other than conventional desktop content browsers. Such devices include personal digital assistants, cellular telephones and cable television set top boxes. As these devices lack the same capabilities of browsing the Web as the conventional desktop content browser, it is necessary to adapt the Web content from one format intended for use in one type of device, to a another format suitable for rendering in another device, called “transcoding”.
The transcoding process can be facilitated through the use of information about the Web content, referred to hereinafter as “meta-information”. Meta-information is generally provided with the original Web content and can be used to assist the transcoding process in identifying specific portions of the Web content. Notably, meta-information can be created without any modification of the original Web content if the meta information is described separately from the Web content.
XML (Extensible Markup Language) is a versatile meta language specified by the World Wide Web Consortium (W3C), which is an international industry consortium created for developing common protocols, addressing the needs for an extensible and interoperable Web and for developing other cross-industry specifications that are based on XML. XML allows definition of new vocabularies for document or data exchange, and optimizes the ability to integrate seamlessly and quickly new information content of diverse data sources, including structured and semi-structured documents, relational databases and object repositories. XML allows users to define elements using arbitrary words and organize them in a nested structure. Since it supports flexibility for data presentations, many Electronic Document Management Systems (EDMS) have employed XML as a representative document format.
The rapid adoption of the XML data model and Web Services has triggered the commercialization of a large number of XML-aware networking devices such as XML firewalls, XML routers, and XML transformation accelerators. With the expectation that XML will constitute more than half of the network traffic, high-speed content-aware systems have gained attention for their potential to introduce network-resident application-independent application-level value add to network services features such as QoS (Quality of service), Security, Load balancing, etc.
XML specifies how to locate and process items by using an addressing syntax based on a path through the logical structure or hierarchy of a document. It enables storing of any amount of text or any data whose structure can be represented as a tree structure; the only indispensable syntactical requirement is that the text must be enclosed between a root opening tag and a corresponding closing tag (for example <message> . . . text . . . </message). The text enclosed by the root tags may contain an arbitrary number of XML elements. The basic syntax for one element is: <message attribute=“value”>content</root>, where “content” is some text which may again contain XML elements.
XPath is an expression language that provides a mechanism for identifying what content of an XML document (elements and attributes) one is interested in using or retrieving. XPath models an XML document as a tree of nodes, and provides the ability to navigate around the tree through the hierarchical structure of an XML document, selecting nodes by a variety of criteria. The primary syntactic construct in XPath is the expression; an XPath expression is often referred to simply as an XPath. An expression is evaluated to yield an object, which has one of the following basic types: node-set (an unordered collection of nodes without duplicates), boolean (true or false); number (a floating-point number); and string (a sequence of UCS characters). In other words, XPath is a syntax for identifying particular sections of a document, such as an XML-formatted document.
XQuery is query language that is designed to query XML documents for any data source that can be viewed as XML data, such as relational databases or office documents, for extracting and manipulating the information. XQuery uses XPath expression syntax to address specific parts of an XML document, and uses the structure of XML intelligently for expressing queries across all these kind of data, whether physically stored in XML or viewed as XML via middleware.
Content-aware systems, such as those used for Application Oriented Networking, rely on XPath/XQuery languages to introduce application-layer rules and enforce policies on application data.